#include<bits/stdc++.h>
using namespace std;
int a[200005],n;
struct node{
	int dep,lr,lb,cnt;
};
//unordered_map<int,int>kkk;
queue<node>q;
int ans=0;
void bfs(){
	q.push({1,-1,-1,0});
	node t;
	while(!q.empty()){
		t=q.front();
		q.pop();
		if(t.dep>n){
			ans=max(ans,t.cnt);
			continue;
		}
		int pr=0,pb=0;
		if(a[t.lr]==a[t.dep]&&t.lr>0)pr=a[t.lr];
		if(a[t.lb]==a[t.dep]&&t.lb>0)pb=a[t.lb];
		q.push({t.dep+1,t.dep,t.lb,t.cnt+pr});
		q.push({t.dep+1,t.lr,t.dep,t.cnt+pb});
	}
	cout<<ans<<endl;
}
int main(){
	freopen("color.in","r",stdin);
	freopen("color.out","w",stdout);
	//~ bool f=0;
	ios::sync_with_stdio(0);
	int T;
	cin>>T;
	while(T--){
		cin>>n;
		for(int i=1;i<=n;i++){
			cin>>a[i];
	//		kkk[a[i]]++;
		}
		//~ cout<<dfs(1,-1,-1)<<endl;
		bfs();
		ans=0;
	}
	return 0;
}
